home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / elk-2_0.lha / elk-2.0 / examples / scheme / work < prev    next >
Encoding:
Text File  |  1991-09-25  |  1.4 KB  |  44 lines

  1. ;;; -*-Scheme-*-
  2. ;;;
  3. ;;; Putting Scheme to Work
  4. ;;; By Olivier Danvy
  5. ;;; Bigre special edition "Putting Scheme to Work"
  6.  
  7. (define fix
  8.   (let ((z (lambda (P)
  9.              (lambda (u)
  10.                (lambda (t)
  11.                  (lambda (t)
  12.                    (lambda (i)
  13.                      (lambda (n)
  14.                        (lambda (g)
  15.                          (lambda (S)
  16.                            (lambda (c)
  17.                              (lambda (h)
  18.                                (lambda (e)
  19.                                  (lambda (m)
  20.                                    (lambda (e)
  21.                                      (lambda (t)
  22.                                        (lambda (o)
  23.                                          (lambda (W)
  24.                                            (lambda (o)
  25.                                              (lambda (r)
  26.                                                (lambda (k)
  27.                                                  (lambda (!)
  28.                                                    (! (lambda (break)
  29.                             (((((((((((((((((((((W o) r) k)
  30.                                       W) o) r) k)
  31.                                       W) o) r) k)
  32.                                   W) o) r) k)
  33.                                   W) o) r) k) !)
  34.                              break)))))))))))))))))))))))))
  35.     (let ((Z z))
  36.       (((((((((((((((((((z z) z) z) z) z) Z) Z) Z) Z) Z) Z) Z) z) z) z) z) z) z) z))))
  37.  
  38. (print
  39. ((fix (lambda (f)
  40.         (lambda (n)
  41.           (if (zero? n)
  42.               1
  43.               (* n (f (- n 1))))))) 9))
  44.